package com.taobao.tae.Mshopping.demo.api;
import com.squareup.okhttp.OkHttpClient;
import com.taobao.tae.Mshopping.demo.api.internal.AlipushErrorHandler;
import com.taobao.tae.Mshopping.demo.api.internal.AlipushRequestInterceptor;
import com.taobao.tae.Mshopping.demo.model.BaseApiResult;
import com.taobao.tae.Mshopping.demo.model.TaobaoItemBasicInfo;
import com.taobao.tae.Mshopping.demo.util.JsonConverter;
import retrofit.ErrorHandler;
import retrofit.RequestInterceptor;
import retrofit.RestAdapter;
import retrofit.client.Client;
import retrofit.client.OkClient;
import retrofit.http.Part;
import retrofit.http.Path;
import retrofit.http.Query;
import retrofit.mime.MultipartTypedOutput;
import retrofit.mime.TypedFile;
import retrofit.mime.TypedOutput;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* mulou.zzy
* taedemo
*/
public class ApiFacade {
private Client apiClient;
private RequestInterceptor alipushInterceptor = new AlipushRequestInterceptor();
private ErrorHandler alipushErrorHandler = new AlipushErrorHandler();
private static ApiFacade instance;
private RestAdapter adapter;
public static ApiFacade getInstance() {
if (instance == null) {
synchronized (ApiFacade.class) {
if (instance == null) {
instance = new ApiFacade();
instance.init();
}
}
}
return instance;
}
private void init() {
adapter = getRestAdapter();
apis = adapter.create(Apis.class);
}
private Apis apis;
private RestAdapter getRestAdapter() {
OkHttpClient okHttpClient = new OkHttpClient();
RestAdapter builder = new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
.setEndpoint("http://10.68.102.241:8080")
.setRequestInterceptor(alipushInterceptor)
.setErrorHandler(alipushErrorHandler)
.setConverter(new JsonConverter())
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
return builder;
}
public BaseApiResult<Map<String, String>> uploadImgs(List<File> files) {
MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput();
for (int i = 0; i < files.size(); i++) {
File file = files.get(i);
String fileName = file.getName();
int index = fileName.lastIndexOf(".");
String mime = null;
if (index == -1) {
mime = "image/jpeg";
} else {
mime = "image/" + fileName.substring(index + 1, fileName.length());
}
TypedFile typedFile = new TypedFile(mime, files.get(i));
multipartTypedOutput.addPart("files", typedFile);
}
return this.apis.upload(multipartTypedOutput);
}
public List<TaobaoItemBasicInfo> getItemList( Integer catId, Integer page, String securityKey) {
return this.apis.getItemList(catId, page, securityKey);
}
}